# coding=utf-8
import allure
from appium.webdriver.common.appiumby import AppiumBy

from app_auto_po.basepage.app import WeWorkApp
from app_auto_po.page.add_member_page import AddMenberPage
from app_auto_po.utils.log_util import logger

"""
添加成员信息填写页面
"""

class MenberInfoPage(WeWorkApp):

    # 姓名输入框
    __NAME_INPUT = AppiumBy.XPATH, '//*[@text="姓名"]/..//*[@text="必填"]'
    # 手机号码输入框
    __PHONE_INPUT = AppiumBy.XPATH, '//*[@text="手机"]/..//*[@text="必填"]'
    # 保存按钮
    __SAVE_BTN = AppiumBy.XPATH, '//*[@text="保存"]'
    # 失败信息
    __FAIL_TIPS = AppiumBy.XPATH, '//*[@text="手机已存在于通讯录，无法添加"]'


    @allure.step("填写添加成员信息的姓名，手机号码，点击保存，返回添加成员页面")
    def add_member_success(self, name, phone):
        """
        填写添加成员信息的姓名，手机号码，点击保存，返回添加成员页面
        :return:
        """
        logger.info("填写成员信息，点击保存，返回添加成员页面")
        # 输入姓名
        # self.driver.find_element(AppiumBy.XPATH, '//*[@text="姓名"]/..//*[@text="必填"]').send_keys(name)
        self.input(*self.__NAME_INPUT,name)
        # 输入手机号码
        # self.driver.find_element(AppiumBy.XPATH, '//*[@text="手机"]/..//*[@text="必填"]').send_keys(phone)
        self.input(*self.__PHONE_INPUT,phone)
        # 保存
        # self.driver.find_element(AppiumBy.XPATH, '//*[@text="保存"]').click()
        self.click(*self.__SAVE_BTN)
        return AddMenberPage(self.driver)


    @allure.step("填写成员信息，点击保存，返回添加成员失败，停留在当前页面")
    def add_member_fail(self, name, phone):
        """
        填写成员信息，点击保存，返回添加成员失败，停留在当前页面
        :return:
        """
        logger.info("填写成员信息，点击保存，返回添加成员失败，停留在当前页面")
        # 输入姓名
        self.input(*self.__NAME_INPUT,name)
        # 输入手机号码
        self.input(*self.__PHONE_INPUT,phone)
        # 保存
        self.click(*self.__SAVE_BTN)
        return self


    @allure.step("添加成员失败，手机号已存在，添加失败")
    def get_fail_tips(self):
        tips = self.get_text(*self.__FAIL_TIPS)
        logger.info("手机号已存在，添加失败")
        return tips

